﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using IndignaFramework.Models;
using IndignaFramework.Controllers.Code;

namespace IndignaFramework.Controllers
{
    public class ContenidoController : Controller
    {
        private Model1Container db = new Model1Container();

        //GET Contenido/Crear

        public ActionResult Crear() {

            return View();

        }

        //POST Contenido/Crear

        [HttpPost]
        public ActionResult Crear(Contenido c)
        {

            c.Inadecuado = 0;
            c.MeGusta = 0;
            c.Fecha = DateTime.Today;
            c.UsuarioWeb = UsuarioWeb.CreateUsuarioWeb(0, "mail", "pass", "nombre", "apellido", 0, 0, "dir", "ciudad", "pais", "nick", DateTime.Today, DateTime.Today, true, 0);
            c.UsuarioWeb.Movimiento = Movimiento.CreateMovimiento(0, "movimiento", 0, 0, "descripcion", "logo", "css", 0, 0, 0, 0);
            c.UsuarioWeb.Movimiento.AdministradorWeb = AdministradorWeb.CreateAdministradorWeb(0, "email", "pass");

            db.Contenido.AddObject(c);
            db.SaveChanges();
            return RedirectToAction("Crear");

        }

        public ActionResult ListarNovedades(int? cant) {
            var movId = MovimientoHelper.MovimientoId;
            var contenidos = db.Contenido.Where(x => x.UsuarioWeb.Movimiento.id == movId)
                .OrderByDescending(x => x.Fecha);
            if (cant.HasValue) {
                var cont = contenidos.Take(cant.Value);
                return View(cont);
            
            }


            return View(contenidos);
        }

        public ActionResult MejorRankeado(int? cant)
        {
            var movId = MovimientoHelper.MovimientoId;
            var contenidos = db.Contenido.Where(x => x.UsuarioWeb.Movimiento.id == movId && x.Fecha.Month == DateTime.Now.Month && x.Fecha.Year == DateTime.Now.Year)
                .OrderByDescending(x => x.MeGusta);
            if (cant.HasValue)
            {
                var cont = contenidos.Take(cant.Value);
                return View(cont);

            }


            return View(contenidos);
        }

    }
}
